![]() |
![]() |
|
Variableninhalte in einem QuickInfo-FensterUm sich den aktuellen Zustand einer Variablen anzeigen zu lassen, fährt man im Haltemodus mit dem Mauszeiger auf den Variablenbezeichner. Der Inhalt einschließlich einer kleinen Beschreibung wird daraufhin in einem QuickInfo-Fenster angezeigt. Wenn Sie daran interessiert sind, sich die Inhalte im Hexadezimalformat anzeigen zu lassen, gibt es dazu in der Symbolleiste Debuggen eine entsprechende Schaltfläche. Im QuickInfo-Fenster können Sie sogar die Möglichkeit wahrnehmen, den Inhalt der Variablen zu verändern. Bedingte HaltepunkteDie im vorhergehenden Abschnitt beschriebenen Haltepunkte unterbrechen in jedem Fall die Programmausführung, weil sie an keine Bedingungen gebunden sind. Der Debugger ermöglicht aber auch die Festlegung von Haltepunkten, die eine Anwendung nur dann in den Haltemodus setzen, wenn bei Erreichen des Haltepunkts bestimmte Bedingungen erfüllt sind. Um eine Bedingung festzulegen, gehen Sie mit dem Cursor in die Codezeile des betreffenden Haltepunkts, öffnen das Kontextmenü und wählen Haltepunkt N Bedingung... Das Fenster, das sich daraufhin öffnet, sehen Sie in Abbildung 9.7.
Abbildung 9.7 Festlegen einer Haltepunktbedingung Legen Sie nun die Bedingung fest, unter welchere der Haltepunkt zur Laufzeit berücksichtigt werden soll. In der Abbildung wäre das genau dann der Fall, wenn die Variable intVar einen Wert kleiner 8 aufweist. Ist intVar gleich oder größer 8, wird das laufende Programm in dieser Codezeile nicht unterbrochen. Alternativ kann auch das Optionsfeld Hat sich geändert markiert werden. Der Debugger prüft dann zuerst, ob sich der Wert der Variablen seit dem letzten Erreichen des Haltepunktes geändert hat. Wenn dies der Fall ist, ist die Bedingung erfüllt, und das Programm wird unterbrochen. Haltepunkt mit Trefferanzahl aktivierenIm Kontextmenü können Sie sich auch für die Option Trefferanzahl... entscheiden. Wenn für einen Haltepunkt keine Trefferanzahl angegeben wurde, wird das Programm immer unterbrochen, wenn der Haltepunkt erreicht wird oder die definierte Bedingung erfüllt ist. Die Festlegung der Trefferanzahl bietet sich zum Beispiel an, wenn die Anzahl der Schleifendurchläufe festgelegt werden soll, bis der Haltepunkt aktiv wird. Ist eine Vorgabe getroffen, wird die Ausführung nur bei Erreichen der Trefferanzahl unterbrochen. Aus einem Kombinationslistenfeld können Sie eine der vier angebotenen Einstellungen wählen (siehe Abbildung 9.8).
Abbildung 9.8 Festlegen der Trefferanzahl Verwalten der HaltepunkteDie Eigenschaften aller Haltepunkte kann man sich im Haltepunktfenster anzeigen lassen. Wählen Sie dazu das Menü Debuggen N Fenster N Haltepunkte. Dieses Fenster ist als Verwaltungstool sehr nützlich, um sich einen Überblick über alle gesetzten Haltepunkte zu verschaffen, die Bedingungen jedes einzelnen zu überprüfen und gegebenenfalls auch zu verändern. Können oder wollen Sie zum Testen einer Anwendung auf einen oder mehrere Haltepunkte verzichten, entfernen Sie einfach das Häkchen vor dem entsprechenden Haltepunkt. Im Codeeditor ist die zu diesem Haltepunkt gehörende Kreisfläche danach nicht mehr farblich ausgefüllt, sondern nur noch als Kreis erkennbar. Die deaktivierten Haltepunkte lassen sich später wieder aktivieren, ohne dass die eingestellten spezifischen Eigenschaften verloren gehen.
Abbildung 9.9 Die Liste aller Haltepunkte 9.3.2 Das »Befehlsfenster«
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Module Module1 |
| Sub Main() |
| Dim x As Integer = 10 |
| Dim y As Integer = 23 |
| Dim z As Integer = x + y |
| Console.Write(z) |
| End Sub |
| Sub DebugTestProc() |
| Console.WriteLine("In DebugTestProc") |
| End Sub |
| End Module |
Operationen im Befehlsfenster setzen den Haltemodus voraus. Daher legen wir einen Haltepunkt in der Codezeile
| Dim z As Integer = x + y |
fest. Nach dem Starten des Projekts stoppt das Programm die Ausführung am Haltepunkt. Sollte das Befehlsfenster in der Entwicklungsumgebung nicht angezeigt werden, müssen Sie es noch öffnen. Sie können nun im Befehlsfenster
| ? x |
eingeben, um sich den Inhalt der Variablen x anzeigen zu lassen. Das Fragezeichen ist dabei notwendig. Ausgegeben wird im Befehlsfenster der Inhalt 10.
Vom Befehlsfenster können Sie durch Eingabe von
| immed |
in das Direktfenster wechseln. Das Wechseln vom Direkt- zum Befehlsfenster erfolgt mit dem Kommando cmd.
Während im Befehlsfenster der Operator »=« immer als Vergleichsoperator dient, wird der »=«-Operator im Direktfenster als Zuweisungsoperator interpretiert. Wenn Sie Lust haben, können Sie den Inhalt einer Variablen zu Testzwecken aus dem Direktfenster heraus ändern. Dazu geben Sie
| x = 250 |
ein. Lassen Sie danach den Code ausführen, wird an der Konsole der Inhalt von z zu 273 berechnet und nicht, wie ursprünglich zu vermuten gewesen wäre, zu 33. Die Änderung einer Variablen im Direktfenster wird also von der Laufzeit berücksichtigt.
Sogar die Methode DebugTestProc können wir auch aus dem Direktfenster heraus aufrufen. Dazu geben wir nur
| DebugTestProc() |
Logische Fehler basieren darauf, dass Variablen unerwartete Inhalte aufweisen, der Programmcode aber syntaktisch richtig ist. Das Direkt- bzw. Befehlsfenster ist eine Möglichkeit, Variablen zu prüfen, die jedoch nicht sehr komfortabel ist, wenn der Programmcode eines größeren Projekts untersucht werden muss. Visual Studio stellt aber mehrere weitere Alternativen zur Verfügung, die noch bessere und detailliertere Informationen bereitstellen. Allen Alternativen ist gemein, dass sie nur im Haltemodus geöffnet werden können. Sie können dazu das Menü Debuggen N Fenster benutzen, teilweise auch das Kontextmenü des Codeeditors. Die Variableninhalte lassen sich, wie auch im Befehlsfenster, verändern, um beispielsweise das Laufzeitverhalten der Anwendung in Grenzsituationen zu testen.
Dieses Fenster enthält alle Variablen mit Namen, Wert und Typ, die in der aktuellen Methode definiert sind. Variablen, die sich zwar im Gültigkeitsbereich einer Methode befinden, aber außerhalb deklariert sind, werden nicht vom Lokal-Fenster erfasst (siehe Abbildung 9.10).
Sie können ein Überwachungsfenster öffnen und die Variablen angeben, die vom Debugger überwacht werden sollen. Um eine Variable einem Überwachungsfenster zuzuordnen, markieren Sie die entsprechende Variable und wählen im Kontextmenü Überwachung hinzufügen. Wollen Sie weitere Variablen überwachen lassen, können Sie diese auch manuell eintragen oder ebenfalls über das Kontextmenü der Variablen hinzufügen (siehe Abbildung 9.11).

Hier klicken, um das Bild zu Vergrößern
Abbildung 9.10 Das »Lokal«-Fenster

Hier klicken, um das Bild zu Vergrößern
Abbildung 9.11 Das Fenster »Überwachen«
| << zurück |
|
||||||||||||||
|
||||||||||||||
|
||||||||||||||
|
||||||||||||||
Copyright © Galileo Press 2007
Für Ihren privaten Gebrauch dürfen Sie die Online-Version natürlich ausdrucken.
Ansonsten unterliegt das <openbook> denselben Bestimmungen, wie die
gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich
geschützt. Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung,
Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.